install.packages("tidyverse") ## instalacja pakietu
trying URL 'https://cran.rstudio.com/bin/macosx/big-sur-x86_64/contrib/4.3/tidyverse_2.0.0.tgz'
Content type 'application/x-gzip' length 428408 bytes (418 KB)
==================================================
downloaded 418 KB

The downloaded binary packages are in
    /var/folders/zs/2z4rlxv54pv7ml4jld2kccmc0000gn/T//RtmpWuGTkU/downloaded_packages
library(tidyverse)
── Attaching core tidyverse packages ─────────────────────────────────────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.3     ✔ readr     2.1.4
✔ forcats   1.0.0     ✔ stringr   1.5.0
✔ ggplot2   3.4.4     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.0
✔ purrr     1.0.2     ── Conflicts ───────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(readxl)
rent <- read_excel(path = "../data-raw/rent-poznan.xlsx")
rent <- as.data.frame(rent)
head(rent)

Wybieramy kolumny z funkcją select z pakietu dplyr.

rent |> select(id, price, flat_area)
rent |> select(1, 5, 10)
rent |> select(1, 5, price)
rent |> select(cena=price, pow=flat_area)
rent |> select(starts_with("p"), ends_with("id"), flat_for_students)
rent |> select(price:flat_for_students, -flat_rooms, -flat_build_year)
rent |> select(contains("ri")) 
rent |> select_if(is.character)
  1. wybrać kolumny, które mają w nazwie “ad”
rent |> select(contains("ad"))
  1. wybrać kolumny od flat_heating do flat_balcony bez kolumny ad_promo
rent |> select(flat_heating:flat_balcony, -ad_promo)

Wybieramy wiersze z funkcją filter

rent |> filter(price < 500)
rent |> filter(price < 500 & flat_rooms == 1)
rent |> filter(price < 500, flat_rooms == 1)
rent |> filter(price > 5000 | price < 200)

rent |> filter(between(price, 1000, 1200)) ## to i to poniżej jest tym samym
rent |> filter(price >= 1000, price <= 1200)

rent |> filter(price < mean(price))

rent |> filter(price < mean(price), .by = individual)

Zadania: wybranie wierszy po dzielcy: Rataje lub Winogrady

rent |> filter(quarter %in% c("Rataje", "Winogrady"))

Wstawianie nowych kolumn z funkcją mutate (transmute)

rent |> mutate(pricem2 = price/flat_area,
               pricem2_log = log(pricem2))

rent |> mutate(pricem2_gr = mean(price), .by = quarter)

rent |> mutate_at(vars(price, flat_area), log)
rent |> mutate_if(is.logical, as.numeric)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9Cmluc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpICMjIGluc3RhbGFjamEgcGFraWV0dQpgYGAKCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShyZWFkeGwpCmBgYAoKYGBge3J9CnJlbnQgPC0gcmVhZF9leGNlbChwYXRoID0gIi4uL2RhdGEtcmF3L3JlbnQtcG96bmFuLnhsc3giKQpyZW50IDwtIGFzLmRhdGEuZnJhbWUocmVudCkKaGVhZChyZW50KQpgYGAKV3liaWVyYW15IGtvbHVtbnkgeiBmdW5rY2rEhSBzZWxlY3QgeiBwYWtpZXR1IGRwbHlyLgoKYGBge3J9CnJlbnQgfD4gc2VsZWN0KGlkLCBwcmljZSwgZmxhdF9hcmVhKQpyZW50IHw+IHNlbGVjdCgxLCA1LCAxMCkKcmVudCB8PiBzZWxlY3QoMSwgNSwgcHJpY2UpCnJlbnQgfD4gc2VsZWN0KGNlbmE9cHJpY2UsIHBvdz1mbGF0X2FyZWEpCnJlbnQgfD4gc2VsZWN0KHN0YXJ0c193aXRoKCJwIiksIGVuZHNfd2l0aCgiaWQiKSwgZmxhdF9mb3Jfc3R1ZGVudHMpCnJlbnQgfD4gc2VsZWN0KHByaWNlOmZsYXRfZm9yX3N0dWRlbnRzLCAtZmxhdF9yb29tcywgLWZsYXRfYnVpbGRfeWVhcikKcmVudCB8PiBzZWxlY3QoY29udGFpbnMoInJpIikpIApyZW50IHw+IHNlbGVjdF9pZihpcy5jaGFyYWN0ZXIpCmBgYAoKMS4gd3licmHEhyBrb2x1bW55LCBrdMOzcmUgbWFqxIUgdyBuYXp3aWUgImFkIiAKCmBgYHtyfQpyZW50IHw+IHNlbGVjdChjb250YWlucygiYWQiKSkKYGBgCgoyLiB3eWJyYcSHIGtvbHVtbnkgb2QgZmxhdF9oZWF0aW5nIGRvIGZsYXRfYmFsY29ueSBiZXoga29sdW1ueSBhZF9wcm9tbwoKCmBgYHtyfQpyZW50IHw+IHNlbGVjdChmbGF0X2hlYXRpbmc6ZmxhdF9iYWxjb255LCAtYWRfcHJvbW8pCmBgYAoKV3liaWVyYW15IHdpZXJzemUgeiBmdW5rY2rEhSBmaWx0ZXIKCmBgYHtyfQpyZW50IHw+IGZpbHRlcihwcmljZSA8IDUwMCkKcmVudCB8PiBmaWx0ZXIocHJpY2UgPCA1MDAgJiBmbGF0X3Jvb21zID09IDEpCnJlbnQgfD4gZmlsdGVyKHByaWNlIDwgNTAwLCBmbGF0X3Jvb21zID09IDEpCnJlbnQgfD4gZmlsdGVyKHByaWNlID4gNTAwMCB8IHByaWNlIDwgMjAwKQoKcmVudCB8PiBmaWx0ZXIoYmV0d2VlbihwcmljZSwgMTAwMCwgMTIwMCkpICMjIHRvIGkgdG8gcG9uacW8ZWogamVzdCB0eW0gc2FteW0KcmVudCB8PiBmaWx0ZXIocHJpY2UgPj0gMTAwMCwgcHJpY2UgPD0gMTIwMCkKCnJlbnQgfD4gZmlsdGVyKHByaWNlIDwgbWVhbihwcmljZSkpCgpyZW50IHw+IGZpbHRlcihwcmljZSA8IG1lYW4ocHJpY2UpLCAuYnkgPSBpbmRpdmlkdWFsKQpgYGAKClphZGFuaWE6IHd5YnJhbmllIHdpZXJzenkgcG8gZHppZWxjeTogUmF0YWplIGx1YiBXaW5vZ3JhZHkKCmBgYHtyfQpyZW50IHw+IGZpbHRlcihxdWFydGVyICVpbiUgYygiUmF0YWplIiwgIldpbm9ncmFkeSIpKQpgYGAKCldzdGF3aWFuaWUgbm93eWNoIGtvbHVtbiB6IGZ1bmtjasSFIG11dGF0ZSAodHJhbnNtdXRlKQoKYGBge3J9CnJlbnQgfD4gbXV0YXRlKHByaWNlbTIgPSBwcmljZS9mbGF0X2FyZWEsCiAgICAgICAgICAgICAgIHByaWNlbTJfbG9nID0gbG9nKHByaWNlbTIpKQoKcmVudCB8PiBtdXRhdGUocHJpY2VtMl9nciA9IG1lYW4ocHJpY2UpLCAuYnkgPSBxdWFydGVyKQoKcmVudCB8PiBtdXRhdGVfYXQodmFycyhwcmljZSwgZmxhdF9hcmVhKSwgbG9nKQpyZW50IHw+IG11dGF0ZV9pZihpcy5sb2dpY2FsLCBhcy5udW1lcmljKQpgYGAKCgo=